关于建blog过程和踩过的坑

关于建blog过程和踩过的坑
xiuqhou关于建blog过程和踩过的坑
写在前面:一个电脑新手,这是我第一次写博客,参考的教程来自15级的一个学长,基本就是根据他建立的过程来操作的
主要步骤:
-
注册github账户,新开一个repository,设置git page
也可以租一个VPS,但是免费的git page托管服务多好用啊 -
下载安装hexo,跟着教程来操作就OK了
-
可以再hexo设置自己喜欢的主题和插件
-
最后托管到github上面
其实用这个的另一个原因是我想学一学markdown,之前有看过这个,感觉用起来还不错,语法也和html基本上差不多
关键是jupyter notebook也支持(。・∀・)ノ
嘿嘿(~﹃~)~zZ,先写这么多,踩过的坑有点多,一时间写不完。
遇到的坑(或者比较难的地方吧):
注意,下面所有带[]的表示里面的内容需要根据自己的进行替换
绑定github账户
这部分其实还好,也就是git的使用,baidu教程一大堆,常用的也就那几个
1 | git init #初始化本地git仓库 |
购买域名(VPS)
- 我是在Gandi上面买的,价格便宜且新人有优惠。因为大天朝还需要备案,总感觉不太方便,所以就在国外买了,Godaddy也不错听说也不错,但是我注册一直不成功,就换成这个了,目前买的是每年7RMB。
- Gandi还可以添加网页转址,所以直接将网页转向github的二级域名username.github.io也能用,但是那就没有买域名的意义了。
- 然后就是添加DNS,Gandi提供免费的DNS,但是国外的毕竟速度不如国内,所以用国内的DNSPod,要在Gandi那里改DNS服务器,在DNSPod加上要解析的域名地址,在控制台加上
@ A [git pages的IP地址]、WWW CNAME [你的域名]记录。- 最后在本地新建一个CNAME文件,文件内容是你的域名,放到source文件夹下,因为hexo每次clean会将非generate生成的文件清除,而放到source文件夹下不会被清除。
_config.yml的配置
我觉得最难的一步是URL和ROOT的设置,经常出错。
- 一开始我的域名是
[username].github.io/[sample]。那么URL要设置成[username].github.io/[sample],而ROOT要设置成/[sample]/(注意’/'号)- 后来我的域名换成了
umzhaa.website,那么URL就要设置成umzhaa.website,ROOT设置成/
看板娘
hexo是有自带的看板娘插件的
npm install --save hexo-helper-live2d
安装的插件后修改_config.yml,在里面添加
1 | # Live2D |
live2d支持使用自定义模型,方式如下:
-
使用自己下载的模型
-
方式一(推荐使用):
- 在您博客根目录下创建一个
live2d_models文件夹 - 在此文件夹内新建一个子文件夹
- 将你的 Live2D 模型复制到这个子文件夹中,自有模型应当有一个
.model.json文件 (例如mymiku.model.json) - 将子文件夹的名称输入
_config.yml的model.use中
- 在您博客根目录下创建一个
-
方式二:您可直接输入相对于博客根目录的自定义路径到
model.use中,示例:./wives/wanko
-
-
使用 npm 下载的模型
-
方式一:下载现有的 npm 资源。官方提供了多款精美的模型,模型预览。你需要先使用
npm install [模型的包名]来安装,然后将包名输入位于_config.yml的model.use中 -
方式二:
- 发布自己的模型包
- 新建一个目录, 用 Node 环境执行 npm init,我们推荐您使用
live2d-widget-model-xxx的包名 - 再使用方式一来使用自己的模型
-
先写这么多吧,以后如果有什么要补充的再更新吧,如果没有的话可能就要开新坑了
2019年12月21日
显示公式
使用mathjax引擎
首先切换渲染引擎:
1 | npm uninstall hexo-renderer-marked --save |
然后更改配置文件/node_modules/hexo-renderer-kramed/lib/renderer.js
1 | function formatText(text) { |
修改为
1 | // Change inline math rule |
停止使用hexo-math,安装mathjax包。
1 | npm uninstall hexo-math --save |
安装hexo-renderer-mathjax包
1 | npm install hexo-renderer-mathjax --save |
更新mathjax配置文件
打开/node_modules/hexo-renderer-mathjax/mathjax.html
更改为:
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
因为LaTeX与markdown语法有语义冲突,所以 hexo 默认的转义规则会将一些字符进行转义,所以我们需要对默认的规则进行修改.
打开/node_modules\kramed\lib\rules\inline.js
1、
1 | escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, |
更改为
1 | escape: /^\\([`*\[\]()# +\-.!_>])/, |
2、
1 | em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
更改为
1 | em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
开启mathjax
打开/themes/yilia主题目录下的config.yml文件
因为我用的yilia主题,所以路径是/themes/yilia
我们需要在config.yml文件 中开启 Mathjax, 找到 mathjax 字段添加如下代码:(不同的主题配置方法略微有区别)
1 | mathjax: |
或者
1 | mathjax: true |
写博客文件时要添加mathjax内容。
1 | title: 特征提取——局部特征 |
来源于简书:https://www.jianshu.com/p/68e6f82d88b7
作者:AomanHao
使用KaTeX引擎
KaTeX引擎相比mathjax更轻量快速,功能略少但够用,可以安装插件可以复制网页中的LaTeX源码。
安装很简单,将官方提供的css和js文件注入到网页中即可:
1 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/katex.min.css" integrity="sha384-Juol1FqnotbkyZUT5Z7gUPjQ9gzlwCENvUZTpQBAPxtusdwFLRy382PSDx5UUJ4/" crossorigin="anonymous"> |
对于提供头文件注入功能的主题,可以直接在配置文件中修改注入代码:
1 | inject: |
对于没有提供注入功能的主题,可手动将注入代码加入到源码中,例如landscape主题,路径为themes/layout/_partial/head.ejs,其他主题路径类似,如下所示:
1 | ··· |
插入图片和相对路径
插入图片方式有绝对引用、网络资源和相对引用
绝对引用
将图片放在source/images 文件夹中,然后在markdown中引用,编译后图片在public/images 文件夹下
1 |  |
网络资源
将图片上传到图床,直接引用url链接,比较推荐,但是就怕服务商跑路。
几个图床网站:
路过图床免费,无限空间
SM.MS免费,每次最多上传10张照片,一张照片最大5M,可删除
聚合图床多个备份,不怕被删除
相对引用
需要将图片一起上传,首先开启_config.yml文件中的post_asset_folder选项
1 | post_asset_folder: true |
此时在public/_post/文件夹下建立一个和文章同名的文件夹,在里面放上图片,引用时有两种方式
1 |  |
第一钟方法为markdown标准写法,在markdown中可以正常预览,但在网络上不能正常显示,查看图片链接如下,多了一个“文章名”。
1 | <img src="hxq2291895932.github.io/2021/10/13/文章名/文章名/img.png"> |
为了解决这个问题,可以使用hexo-asset-image插件,但我没研究明白咋用。
第二种方法是hexo推荐的写法,但markdown显示不出来,因为文章同一文件夹下没有img.png这个文件;但网络上能够正常显示,查看链接会发现为:
1 | <img src="hxq2291895932.github.io/2021/10/13文章名/img.png" |
这才是正确的图片地址,为了解决markdown显示不出来的问题,在typora编辑器最上方yml-front-matter一栏中加入如下代码:
1 | --- |

